<?php
/*
 * Comentario SQL.
 * @Autor: Inicial.cl.
 */
class ComentarioSQL {
	//METODO PARA GRABAR COMENTARIO.
	public static $GRABAR_COMENTARIO = 
		"INSERT INTO comentario
			(
				mensaje,
				fecha,
				idUsuarioOrigen,
				idEstado,
				idTipoComentario,
				idRegistro
			)
		VALUES
			(
				'{#MENSAJE}',
				NOW(),
				{#IDUSUARIOORIGEN},
				{#IDESTADO},
				{#IDTIPOCOMENTARIO},
				{#IDREGISTRO}
			);
		";

	//METODO PARA EDITAR COMENTARIO.
	public static $EDITAR_COMENTARIO = 
		"UPDATE comentario SET 
			mensaje = '{#MENSAJE}',
			fecha = '{#FECHA}',
			idUsuarioOrigen = '{#IDUSUARIOORIGEN}',
			idEstado = '{#IDESTADO}',
			idTipoComentario = '{#IDTIPOCOMENTARIO}',
			idRegistro = '{#IDREGISTRO}'
		WHERE
			id = {#ID}
		";

        //METODO PARA LISTAR COMENTARIO.
	public static $LISTAR_COMENTARIO = "
                  SELECT
                      c.id,
                      c.mensaje,
                      c.fecha,
                      c.idUsuarioOrigen,
                      c.idEstado,
                      IFNULL(e.nombre,'') as estado,
                      c.idTipoComentario,
                      tc.nombre as tipoComentario,
                      c.idRegistro,
                      case c.idTipoComentario
                        when 1 then IFNULL(esc.nombre,'')
                        when 2 then IFNULL(ent.titulo,'')
                        when 3 then IFNULL(n.titulo,'')
                        when 4 then IFNULL(rel.titulo,'')
                      end as paraTitulo,
                      case c.idTipoComentario
                        when 1 then ''
                        when 2 then IFNULL(ent.mensaje,'')
                        when 3 then IFNULL(n.mensaje,'')
                        when 4 then IFNULL(rel.mensaje,'')
                      end as paraMensaje
                  FROM
                        comentario as c
                  inner join estado as e on (c.idEstado = e.id)
                  inner join tipo_comentario as tc on (c.idTipoComentario = tc.id)
                  left join escort as esc on (c.idRegistro = esc.id)
                  left join entrevista_escort as ent on (c.idRegistro = ent.id)
                  left join noticia as n on (c.idRegistro = n.id)
                  left join relato_escort as rel on (c.idRegistro = rel.id)
                  WHERE
                      idTipoComentario = {#IDTIPOCOMENTARIO}
                  AND c.idEstado > 0
		";

        public static $LISTAR_TOTAL = "select 
                                                COUNT(*)
                                            from 
                                                comentario c 
                                                INNER JOIN usuario u ON c.idUsuarioOrigen=u.id
                                            where 
                                                c.idTipoComentario={#IDTIPOCOMENTARIO} and
                                                c.idRegistro={#IDESCORT}";
        
        public static $LISTAR_POR_ESCORT = "select 
                                                c.id,
                                                c.mensaje,
                                                c.fecha,
                                                c.idUsuarioOrigen,
                                                c.idEstado,
                                                c.idTipoComentario,
                                                c.idRegistro,
                                                u.rutaAvatar,
                                                u.usuario
                                            from 
                                                comentario c 
                                                INNER JOIN usuario u ON c.idUsuarioOrigen=u.id
                                            where 
                                                c.idTipoComentario={#IDTIPOCOMENTARIO} and
                                                c.idRegistro={#IDESCORT}
                                            ORDER BY
                                                c.fecha DESC
                                            LIMIT {#INICIO}, {#TAMANNOPAGINA}";
        
        //METODO PARA LISTAR COMENTARIO.
	public static $LISTAR_COMENTARIO_ULTIMOS = "
            SELECT
                c.id,
                c.fecha,
                c.mensaje,
                c.idUsuarioOrigen,
                c.idEstado,
                c.idTipoComentario,
                c.idRegistro,
                u.rutaAvatar,
                t.nombre as tipoComentario,
                CASE t.nombre
                    WHEN 'Escort' THEN (SELECT nombre FROM escort WHERE id=c.idRegistro LIMIT 1)
                    WHEN 'Entrevista' THEN (SELECT titulo FROM entrevista_escort WHERE id=c.idRegistro LIMIT 1)
                    WHEN 'Noticia' THEN (SELECT titulo FROM noticia WHERE id=c.idRegistro LIMIT 1)
                    WHEN 'Relato' THEN (SELECT titulo FROM relato_escort WHERE id=c.idRegistro LIMIT 1)
                    WHEN 'Concurso' THEN (SELECT titulo FROM concurso WHERE id=c.idRegistro LIMIT 1)
                END as registro
            FROM
                comentario c
                INNER JOIN usuario u ON c.idUsuarioOrigen=u.id
                INNER JOIN tipo_comentario t ON c.idTipoComentario=t.id
            ORDER BY
                c.fecha DESC
            LIMIT
                15";
        
	//METODO PARA OBTENER POR ID COMENTARIO.
	public static $OBTENER_COMENTARIO_POR_ID = 
		"SELECT
			c.id,
			c.mensaje,
			c.fecha,
			c.idUsuarioOrigen,
			c.idEstado,
			c.idTipoComentario,
			c.idRegistro,
                        case c.idTipoComentario
                          when 1 then IFNULL(esc.nombre,'')
                          when 2 then IFNULL(ent.titulo,'')
                          when 3 then IFNULL(n.titulo,'')
                          when 4 then IFNULL(rel.titulo,'')
                        end as paraTitulo,
                        case c.idTipoComentario
                          when 1 then ''
                          when 2 then IFNULL(ent.mensaje,'')
                          when 3 then IFNULL(n.mensaje,'')
                          when 4 then IFNULL(rel.mensaje,'')
                        end as paraMensaje
		FROM
			  comentario as c
                left join escort as esc on (c.idRegistro = esc.id)
                left join entrevista_escort as ent on (c.idRegistro = ent.id)
                left join noticia as n on (c.idRegistro = n.id)
                left join relato_escort as rel on (c.idRegistro = rel.id)
		WHERE
			c.id = {#ID}
		";

	//METODO PARA ELIMINAR (CAMBIAR ESTADO A 0) COMENTARIO.
	public static $ELIMINAR_COMENTARIO = 
		"UPDATE comentario SET
			idEstado = 0
		WHERE 
			id = {#ID}
		";
        
        public static $LISTAR_TOP_COMENTARISTAS = "SELECT 
                                                        c.idUsuarioOrigen,
                                                        u.usuario,
                                                        u.rutaAvatar,
                                                        COUNT(c.id) as cantidad
                                                    FROM
                                                        comentario c
                                                        INNER JOIN usuario u ON c.idUsuarioOrigen=u.id
                                                    WHERE
                                                        u.idEstado = 1
                                                    GROUP BY
                                                        c.idUsuarioOrigen
                                                    ORDER BY cantidad DESC";
}
?>